package Z008NumberAndString.NS08EquString;

import java.time.chrono.MinguoChronology;
import java.util.Locale;

public class BiJiaoString{}


// str1和str2的内容一定是一样的！
// 但是，并不是同一个字符串对象
class String1 {

    public static void main(String[] args) {
        String str1 = "the light";
        String str2 = new String(str1);

        // == 用于判断是否为同一个字符串
        System.out.println(str1 == str2);
    }
}


// 是否是同一对象-特例
class String2{
    public static void main(String[] args){
        /*
        一般说来，编译器每碰到一个字符串的字面值，就会创建一个新的对象
         所以在第6行会创建了一个新的字符串"the light"
         但是在第7行，编译器发现已经存在现成的"the light"，那么就直接拿来使用，而没有进行重复创建
         */
        String str1 = "the light";
        String str2 = "the Light";
        System.out.println(str1 == str2);
    }
}


// 内容是否相同
// 使用equals进行字符串内容的比较，必须大小写一致
// equalsIgnoreCase，忽略大小写判断内容是否一致
class String3 {

    public static void main(String[] args) {


        String str1 = "the light";

        String str2 = new String(str1);

        String str3 = str1.toUpperCase();
        System.out.println(str1 == str2);

        System.out.println(str1.equals(str2));
        // 完全一样返回turn
        System.out.println(str1.equals(str3));
        // 大小写不一致，返回false
        System.out.println(str1.equalsIgnoreCase(str3));
        // 忽略大小写比较，返回true

    }
}



// 是否以子字符串开始或者结束
// startsWith //以...开始
// endsWith //以...结束
class String4{

    public static void main(String[] args) {

        String str1 = "the light";

        String start = "the";
        String end = "Light";

        System.out.println(str1.startsWith(start));
        // 以。。。开始
        System.out.println(str1.endsWith(end));
        // 以。。。结束
    }
}

/*
 创建一个长度是100的字符串数组
 使用长度是2的随机字符填充该字符串数组
 统计这个字符串数组里重复的字符串有多少种
 */